---
title: clsMCOProviderList
summary: API reference for clsMCOProviderList.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-08-21
library: SAIF.Business.View.Provider
reference_type: embedded
---

# clsMCOProviderList

`clsMCOProviderList` is a self-loading `List(Of clsMCOProvider)` that queries `MCO_PROVIDER` directly via `SqlHelper.ResultSetQuery` in its constructor and decorates each row with plan information from `SAIF.Business`'s `GetMCOInfo`. It backs `clsProviderLocation.MCOList` and is one of the direct-query style types that bypass this library's portal/criteria pattern.

## Purpose
- Loads all MCO enrollments for a specific provider location in one direct SQL execution.
- Cross-references each loaded enrollment's plan ID against `GetMCOInfo`'s plan lookup, surfacing a data-integrity failure immediately if the plans do not match ([BR-MCO-001](../../business-rules.md#br-mco-001-mco-plan-must-match-the-assigned-plan-id)).

## Context
- Namespace: `SAIF.Business.View.Provider`
- Assembly/package: `SAIF.Business.View.Provider` (embedded/project-compiled); also distributed as the NuGet package `SAIF.BOF.Business.View.Provider`.

## Public members
| Member | Signature | Purpose |
| --- | --- | --- |
| `.ctor` | `Sub New(dpi As IDataPortalInfo, providerLocationID As Decimal)` | Queries `MCO_PROVIDER` bound on `:ProviderLocationID` (OP-11, SQL-MCO-01), then calls `SetPlan(GetMCOInfo(dpi).Plan(prov.PlanID))` for each row, applying [BR-MCO-001](../../business-rules.md#br-mco-001-mco-plan-must-match-the-assigned-plan-id). |
| `Item` | `Default Property Item(index As Integer) As clsMCOProvider` (from `List(Of clsMCOProvider)`) | Returns the MCO enrollment at the given position in the loaded list. |
| `Count` | `ReadOnly Property Count As Integer` (from `List(Of clsMCOProvider)`) | Number of MCO enrollments loaded for the location. |
| `GetEnumerator` | `Function GetEnumerator() As List(Of clsMCOProvider).Enumerator` (from `List(Of clsMCOProvider)`) | Enumerates the loaded enrollments in query result order. |

## Behavioral notes
- OP-11: constructing this list will throw `ApplicationException("MCO plan submitted does not match plan assigned.")` if any row's recorded `PlanID` does not match the plan returned by `GetMCOInfo` ([BR-MCO-001](../../business-rules.md#br-mco-001-mco-plan-must-match-the-assigned-plan-id)) — a caller loading `clsProviderLocation.MCOList` should be prepared for this exception to surface on read, not just on write.
- `GetMCOInfo` is implemented in `SAIF.Business` and its internal lookup logic is outside this repository.**

## Constraints and usage notes
- Loading this list is a database round trip plus a dependency call to `GetMCOInfo`; consumers reading `clsProviderLocation.MCOList` repeatedly should cache the result rather than re-triggering the load.*
- No create/update/delete surface — load-only list.

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources
- SAIF.Business.View.Provider/clsMCOProvider.vb
